package com.tang.model.delegate;

import com.tang.model.delegate.abst.IEmployee;
import com.tang.model.delegate.impl.EmployeeA;
import com.tang.model.delegate.impl.EmployeeB;

import java.util.HashMap;
import java.util.Map;

/**
 * @Author tangyuan2meicloud.com
 * @DATE 2021/8/31 19:53
 * @Desc    经理 更多的承担一种代理的角色，需要知晓每个
 *          员工具体的工作内容，当有人提出需求时，经理
 *          能给出具体的员工，提供相关服务
 * @Remarks
 */
public class Manager implements IEmployee {
    Map<String, IEmployee> maps = null;

    public Manager() {
        maps = new HashMap<>();
        maps.put("编程",new EmployeeA());
        maps.put("写文案",new EmployeeB());
    }

    public void work(String task) {
        if (!maps.containsKey(task)) {
            throw new RuntimeException("暂时无人能承担相关工作，无法完成！");
        }
        IEmployee iEmployee = maps.get(task);
        iEmployee.work(task);
    }
}
